<?php

namespace Controller;

require_once 'Model/RegisterHandler.php';
require_once 'View/RegisterView.php';


class RegisterController{	
	
	
	public function DoControll($Database){
	
	$RegisterView = new \View\RegisterView();
	$RegisterHandler = new \Model\RegisterHandler($Database);
		
			// Hämtar de inskriva användarnamnet och lösenordet
			$Validation = new \View\Validation();
			
			$regusername = $RegisterView->GetUserName($Validation);
			$regpassword = $RegisterView->GetPassword($Validation);
			
			$output;
			
			// En array som ska innehålla eventuella meddelanden
			$messages = array();
			
			// Ser till att mitt registreringsformulär blir utskrivet
			$output = $RegisterView->CreateRegisterForm();
			
			// Kontrollerar om användaren har klickat på registrera-knappen	
			if($RegisterView->TriedToRegister()){						
				// Kontrollerar om användarnamnet redan finns
				if($RegisterHandler->DoesUserExist($regusername)){			
					$messages[] = \View\RegisterView::USER_EXISTS;			
				}			
				// Kontrollerar om användarnamnet är tomt
				if(empty($regusername)){
					$messages[] = \View\RegisterView::EMPTY_USERNAME;
				}				
				// Kontrollerar om lösenordet är av korrekt format och att samma lösenord är inmatad två gånger
				if ($regpassword == false){
					$messages[] = \View\RegisterView::PASSWORD_NOT_ACCEPTED;
				}				
				// Om inga fel har skrivits in registreras användaren
				if(empty($messages)){
					$register = $RegisterHandler->RegisterUser($regusername, $regpassword);
					$output = $RegisterView->CreateRegisterForm() . \View\RegisterView::SUCCESS;
				}			
				// Annars skrivs alla felmeddelanden ut	
				else{
					$output .= $RegisterView->GenerateMessageOutput($messages);
					return $output;	
				}
			}	
			// Returnerar funktionen
			return $output;					
	}	
}		